<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><title>ACS_Classes - NewAC</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.4 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="ACS_Classes"></a>ACS_Classes</h1><div class=CBody><p>NewAC core classes.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#ACS_Classes" >ACS_Classes</a></td><td class=SDescription>NewAC core classes.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuFileStream" >TAuFileStream</a></td><td class=SDescription>TFileStream analog that handles Unicode.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuThread" >TAuThread</a></td><td class=SDescription>Custom TThread descendant that does something.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuInput" >TAuInput</a></td><td class=SDescription>The ancestor class for all input components.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.GetData" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">GetData</a></td><td class=SDescription>This method retrieves input data. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuInput.CopyData" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">CopyData</a></td><td class=SDescription>Writes no more than BufferSize data into Buffer</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.FillBuffer" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">FillBuffer</a></td><td class=SDescription>The same as <a href="#TAuInput.CopyData" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt2', 'link4')" onMouseOut="HideTip('tt2')">CopyData</a> but tries to fill the Buffer. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuInput.Init" id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">Init</a></td><td class=SDescription>This method prepares input component for reading data. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.Flush" id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">Flush</a></td><td class=SDescription>This method closes the current input (opened with <a href="#TAuInput.Init" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt4', 'link7')" onMouseOut="HideTip('tt4')">Init</a>), clearing up all temporary structures allocated during data transfer. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuInput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.BitsPerSample" >BitsPerSample</a></td><td class=SDescription>The number of bits per sample in the input stream. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuInput.Position" >Position</a></td><td class=SDescription>The current reading position in the input stream in bytes.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.SampleRate" >SampleRate</a></td><td class=SDescription>The input stream sample rate in Herz.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuInput.Channels" >Channels</a></td><td class=SDescription>The number of channels in the input stream. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.Size" >Size</a></td><td class=SDescription>A read only property which returns input data size in bytes. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuInput.TotalSamples" >TotalSamples</a></td><td class=SDescription>A read only property which returns number of samples (frames) in the input stream. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuInput.TotalTime" >TotalTime</a></td><td class=SDescription>A read only property which returns input playback time in seconds. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuInput.Seekable" >Seekable</a></td><td class=SDescription>This read only property indicates when the input is seekable.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuOutput" >TAuOutput</a></td><td class=SDescription>The ancestor class for all output components.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuOutput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Pause" id=link8 onMouseOver="ShowTip(event, 'tt6', 'link8')" onMouseOut="HideTip('tt6')">Pause</a></td><td class=SDescription>Pauses the output.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuOutput.Resume" id=link9 onMouseOver="ShowTip(event, 'tt7', 'link9')" onMouseOut="HideTip('tt7')">Resume</a></td><td class=SDescription>Resumes previously paused output.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Run" id=link10 onMouseOver="ShowTip(event, 'tt8', 'link10')" onMouseOut="HideTip('tt8')">Run</a></td><td class=SDescription>After an input component has been assigned, call Run to start the audio processing chain. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuOutput.BlockingRun" id=link11 onMouseOver="ShowTip(event, 'tt9', 'link11')" onMouseOut="HideTip('tt9')">BlockingRun</a></td><td class=SDescription>In some situations, such as console programs or DUnit test units, background processing is not desirable. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Stop" id=link12 onMouseOver="ShowTip(event, 'tt10', 'link12')" onMouseOut="HideTip('tt10')">Stop</a></td><td class=SDescription>Stops the busy component or does nothing if the component is idle.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuOutput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Delay" >Delay</a></td><td class=SDescription>Sets the delay, affects CPU usage.</td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuOutput.ThreadPriority" >ThreadPriority</a></td><td class=SDescription>This property allows you to set the priority of the output thread.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Progress" >Progress</a></td><td class=SDescription>Read Progress to get the output progress in percents. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuOutput.Status" >Status</a></td><td class=SDescription>This read only property indicates the output component&rsquo;s current status. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.TimeElapsed" >TimeElapsed</a></td><td class=SDescription>The time in seconds that has passed since the playback was started. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuOutput.ExceptionMessage" >ExceptionMessage</a></td><td class=SDescription>Most exceptions that may occur during NewAC operation are suppressed. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.Input" >Input</a></td><td class=SDescription>This property allows you to set the input component for the output component. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuOutput.OnDone" >OnDone</a></td><td class=SDescription>Raised when the component has finished its job or was stopped asynchronously. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.OnProgress" >OnProgress</a></td><td class=SDescription>OnProgress event is raised periodically to indicate output progress. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuOutput.OnThreadException" >OnThreadException</a></td><td class=SDescription>This event is raised if an exception has occurred. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuOutput.OnSyncDone" >OnSyncDone</a></td><td class=SDescription>The synchronous analogue of the <a href="#TAuOutput.OnDone" class=LProperty id=link13 onMouseOver="ShowTip(event, 'tt11', 'link13')" onMouseOut="HideTip('tt11')">OnDone</a> event. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAuStreamedInput" >TAuStreamedInput</a></td><td class=SDescription>A descendant of <a href="#TAuInput" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt12', 'link14')" onMouseOut="HideTip('tt12')">TAuInput</a> to deal with streams.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuStreamedInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuStreamedInput.SeekInternal" id=link15 onMouseOver="ShowTip(event, 'tt13', 'link15')" onMouseOut="HideTip('tt13')">SeekInternal</a></td><td class=SDescription>This abstract method should be overridden with an implementation dependong on whether your input component is seekable or not. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuStreamedInput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuStreamedInput.EndSample" >EndSample</a></td><td class=SDescription>Set this property&rsquo;s value to the sample (frame) you want the input to stop playing at. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuStreamedInput.Loop" >Loop</a></td><td class=SDescription>If set to True, the input loops (i.e. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuStreamedInput.StartSample" >StartSample</a></td><td class=SDescription>Set this property&rsquo;s value to the sample (frame) you want the input to start playing from. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuStreamedInput.Stream" >Stream</a></td><td class=SDescription>Use this property to set the input data stream for the input component. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuStreamedInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuStreamedInput.Seek" id=link16 onMouseOver="ShowTip(event, 'tt14', 'link16')" onMouseOut="HideTip('tt14')">Seek</a></td><td class=SDescription>This method allows you to change the current playing position in the the input component. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAuStreamedOutput" >TAuStreamedOutput</a></td><td class=SDescription>A descendant of <a href="#TAuOutput" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt15', 'link17')" onMouseOut="HideTip('tt15')">TAuOutput</a> to deal with streams.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuFileIn" >TAuFileIn</a></td><td class=SDescription>A descendant of <a href="#TAuStreamedInput" class=LClass id=link18 onMouseOver="ShowTip(event, 'tt16', 'link18')" onMouseOut="HideTip('tt16')">TAuStreamedInput</a> to deal with files and streams. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuFileIn.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuFileIn.OpenFile" id=link19 onMouseOver="ShowTip(event, 'tt17', 'link19')" onMouseOut="HideTip('tt17')">OpenFile</a></td><td class=SDescription>Opens the file or stream if it is not already open. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuFileIn.CloseFile" id=link20 onMouseOver="ShowTip(event, 'tt18', 'link20')" onMouseOut="HideTip('tt18')">CloseFile</a></td><td class=SDescription>Closes the file opened with <a href="#TAuFileIn.OpenFile" class=LFunction id=link21 onMouseOver="ShowTip(event, 'tt17', 'link21')" onMouseOut="HideTip('tt17')">OpenFile</a>. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuFileIn.SetStartTime" id=link22 onMouseOver="ShowTip(event, 'tt19', 'link22')" onMouseOut="HideTip('tt19')">SetStartTime</a></td><td class=SDescription>This function is a wrapper around StartSample property, provided for convenience. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuFileIn.SetEndTime" id=link23 onMouseOver="ShowTip(event, 'tt20', 'link23')" onMouseOut="HideTip('tt20')">SetEndTime</a></td><td class=SDescription>This function is a wrapper around EndSample property, provided for convenience. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuFileIn.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuFileIn.Valid" >Valid</a></td><td class=SDescription>Read this property to determine if the file is valid. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuFileIn.WideFileName" >WideFileName</a></td><td class=SDescription>Allows you to handle file names in Unicode. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuFileIn.Filename" >Filename</a></td><td class=SDescription>File name in 8-bit encoding. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAuTaggedFileIn" >TAuTaggedFileIn</a></td><td class=SDescription>Descends from <a href="#TAuFileIn" class=LClass id=link24 onMouseOver="ShowTip(event, 'tt21', 'link24')" onMouseOut="HideTip('tt21')">TAuFileIn</a>, this class is an ancestor of the file input components that use tags.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuTaggedFileIn.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuTaggedFileIn.CommonTags" >CommonTags</a></td><td class=SDescription>Contains the tag values common to the different tag formats</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuFileOut" >TAuFileOut</a></td><td class=SDescription>A descendant of <a href="#TAuStreamedOutput" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt22', 'link25')" onMouseOut="HideTip('tt22')">TAuStreamedOutput</a> to deal with files and streams.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuFileOut.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuFileOut.FileMode" >FileMode</a></td><td class=SDescription>This property can take one of two values foRewrite (default) and foAppend. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuFileOut.WideFileName" >WideFileName</a></td><td class=SDescription>Allows you to handle file names in Unicode. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuFileOut.Filename" >Filename</a></td><td class=SDescription>File name in 8-bit encoding. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAuFileOut.ShareMode" >ShareMode</a></td><td class=SDescription>This property stores the share mode flags (like fmShareExclusive, fmShareDenyRead) that are applied to the files being created. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAuTaggedFileOut" >TAuTaggedFileOut</a></td><td class=SDescription>Descends from <a href="#TAuFileOut" class=LClass id=link26 onMouseOver="ShowTip(event, 'tt23', 'link26')" onMouseOut="HideTip('tt23')">TAuFileOut</a>, this class is an ancestor of the file output components that use Id3v* tags.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAuConverter" >TAuConverter</a></td><td class=SDescription>Descends from <a href="#TAuInput" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt12', 'link27')" onMouseOut="HideTip('tt12')">TAuInput</a>, the base class for all converter components. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuConverter.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuConverter.Input" >Input</a></td><td class=SDescription>Like the output components, converters can be assigned an input. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAudioTap" >TAudioTap</a></td><td class=SDescription>This is the base class for all &ldquo;audio tap components&rdquo;. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAudioTap.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAudioTap.StartRecord" id=link28 onMouseOver="ShowTip(event, 'tt24', 'link28')" onMouseOut="HideTip('tt24')">StartRecord</a></td><td class=SDescription>Call this method to start recording audio data passing through an audio tap.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAudioTap.StopRecord" id=link29 onMouseOver="ShowTip(event, 'tt25', 'link29')" onMouseOut="HideTip('tt25')">StopRecord</a></td><td class=SDescription>Call this method to stop recording.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAudioTap.PauseRecord" id=link30 onMouseOver="ShowTip(event, 'tt26', 'link30')" onMouseOut="HideTip('tt26')">PauseRecord</a></td><td class=SDescription>Call this method to pause recording.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAudioTap.ResumeRecord" id=link31 onMouseOver="ShowTip(event, 'tt27', 'link31')" onMouseOut="HideTip('tt27')">ResumeRecord</a></td><td class=SDescription>Call this method to resume paused recording.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAudioTap.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAudioTap.Status" >Status</a></td><td class=SDescription>Read this property to get the component status. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAudioTap.WideFileName" >WideFileName</a></td><td class=SDescription>Use this property to set or get the file name the data is written to in Unicode charset. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAudioTap.FileName" >FileName</a></td><td class=SDescription>Use this property to set or get the file name the data is written to in 8-bit charset. </td></tr><tr class="SClass"><td class=SEntry><a href="#TAuFIFOStream" >TAuFIFOStream</a></td><td class=SDescription>This class implements the FIFO queue with a TStream-compatible interface. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuFIFOStream.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuFIFOStream.Create" id=link32 onMouseOver="ShowTip(event, 'tt28', 'link32')" onMouseOut="HideTip('tt28')">Create</a></td><td class=SDescription>The TAuFIFOStream constructor. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuFIFOStream.Read" id=link33 onMouseOver="ShowTip(event, 'tt29', 'link33')" onMouseOut="HideTip('tt29')">Read</a></td><td class=SDescription>This function reimplements that of TStream. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuFIFOStream.Write" id=link34 onMouseOver="ShowTip(event, 'tt30', 'link34')" onMouseOut="HideTip('tt30')">Write</a></td><td class=SDescription>This function reimplements that of TStream. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuFIFOStream.Seek" id=link35 onMouseOver="ShowTip(event, 'tt31', 'link35')" onMouseOut="HideTip('tt31')">Seek</a></td><td class=SDescription>This function reimplements that of TStream. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuFIFOStream.WouldReadBlock" id=link36 onMouseOver="ShowTip(event, 'tt32', 'link36')" onMouseOut="HideTip('tt32')">WouldReadBlock</a></td><td class=SDescription>This function returns True if the <a href="#TAuFIFOStream.Read" class=LFunction id=link37 onMouseOver="ShowTip(event, 'tt29', 'link37')" onMouseOut="HideTip('tt29')">Read</a> would block (that is there is no data in the buffer) and False otherwise.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#TAuFIFOStream.WouldWriteBlock" id=link38 onMouseOver="ShowTip(event, 'tt33', 'link38')" onMouseOut="HideTip('tt33')">WouldWriteBlock</a></td><td class=SDescription>This function returns True if the <a href="#TAuFIFOStream.Write" class=LFunction id=link39 onMouseOver="ShowTip(event, 'tt30', 'link39')" onMouseOut="HideTip('tt30')">Write</a> would block (that is there is not enough free space in the buffer to write Bytes bytes) and False otherwise.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#TAuFIFOStream.Reset" id=link40 onMouseOver="ShowTip(event, 'tt34', 'link40')" onMouseOut="HideTip('tt34')">Reset</a></td><td class=SDescription>Call this to reset the stream. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAuFIFOStream.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAuFIFOStream.EOF" >EOF</a></td><td class=SDescription>The writer sets this property to True when it has written all the data. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuFileStream"></a>TAuFileStream</h2><div class=CBody><p>TFileStream analog that handles Unicode.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuThread"></a>TAuThread</h2><div class=CBody><p>Custom TThread descendant that does something.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuInput"></a>TAuInput</h2><div class=CBody><p>The ancestor class for all input components.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.GetData" id=link41 onMouseOver="ShowTip(event, 'tt1', 'link41')" onMouseOut="HideTip('tt1')">GetData</a></td><td class=SDescription>This method retrieves input data. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuInput.CopyData" id=link42 onMouseOver="ShowTip(event, 'tt2', 'link42')" onMouseOut="HideTip('tt2')">CopyData</a></td><td class=SDescription>Writes no more than BufferSize data into Buffer</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.FillBuffer" id=link43 onMouseOver="ShowTip(event, 'tt3', 'link43')" onMouseOut="HideTip('tt3')">FillBuffer</a></td><td class=SDescription>The same as <a href="#TAuInput.CopyData" class=LFunction id=link44 onMouseOver="ShowTip(event, 'tt2', 'link44')" onMouseOut="HideTip('tt2')">CopyData</a> but tries to fill the Buffer. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuInput.Init" id=link45 onMouseOver="ShowTip(event, 'tt4', 'link45')" onMouseOut="HideTip('tt4')">Init</a></td><td class=SDescription>This method prepares input component for reading data. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.Flush" id=link46 onMouseOver="ShowTip(event, 'tt5', 'link46')" onMouseOut="HideTip('tt5')">Flush</a></td><td class=SDescription>This method closes the current input (opened with <a href="#TAuInput.Init" class=LFunction id=link47 onMouseOver="ShowTip(event, 'tt4', 'link47')" onMouseOut="HideTip('tt4')">Init</a>), clearing up all temporary structures allocated during data transfer. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuInput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.BitsPerSample" >BitsPerSample</a></td><td class=SDescription>The number of bits per sample in the input stream. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuInput.Position" >Position</a></td><td class=SDescription>The current reading position in the input stream in bytes.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.SampleRate" >SampleRate</a></td><td class=SDescription>The input stream sample rate in Herz.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuInput.Channels" >Channels</a></td><td class=SDescription>The number of channels in the input stream. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.Size" >Size</a></td><td class=SDescription>A read only property which returns input data size in bytes. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuInput.TotalSamples" >TotalSamples</a></td><td class=SDescription>A read only property which returns number of samples (frames) in the input stream. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuInput.TotalTime" >TotalTime</a></td><td class=SDescription>A read only property which returns input playback time in seconds. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuInput.Seekable" >Seekable</a></td><td class=SDescription>This read only property indicates when the input is seekable.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuInput.GetData"></a>GetData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure GetData(</td><td class=PParameter nowrap>var Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>var Bytes :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>); virtual</td></tr></table></td></tr></table></blockquote><p>This method retrieves input data.&nbsp; You specify the number of bytes you want to get, but you may get less and it should not be considered as an end of input indication.&nbsp; When the end of input is reached GetData sets Buffer to nil and Bytes to 0.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Buffer</td><td class=CDLDescription>This is the variable where GetData will put a pointer to a data buffer.&nbsp; Unlike many other data reading functions GetData doesn&rsquo;t take our buffer pointer but provides you with its own.</td></tr><tr><td class=CDLEntry>Bytes</td><td class=CDLDescription>When you call GetData you pass to Bytes the number of bytes you want to get.&nbsp; When the method returns the Bytes variable holds the number of bytes in the Buffer.</td></tr></table><h4 class=CHeading>Note</h4><p>Usually you should not call this method directly.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuInput.CopyData"></a>CopyData</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function CopyData(</td><td class=PParameter nowrap>Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>BufferSize :</td><td class=PType nowrap>&nbsp;Integer</td><td class=PAfterParameters nowrap>) : LongWord</td></tr></table></td></tr></table></blockquote><p>Writes no more than BufferSize data into Buffer</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Buffer: Pointer</td><td class=CDLDescription>the buffer to write to</td></tr><tr><td class=CDLEntry>BufferSize: Integer</td><td class=CDLDescription>the number of bytes to write</td></tr></table></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuInput.FillBuffer"></a>FillBuffer</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function FillBuffer(</td><td class=PParameter nowrap>Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>BufferSize :</td><td class=PType nowrap>&nbsp;LongWord;</td></tr><tr><td></td><td class=PParameter nowrap>var EOF :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PAfterParameters nowrap>) : LongWord</td></tr></table></td></tr></table></blockquote><p>The same as <a href="#TAuInput.CopyData" class=LFunction id=link48 onMouseOver="ShowTip(event, 'tt2', 'link48')" onMouseOut="HideTip('tt2')">CopyData</a> but tries to fill the Buffer.&nbsp; EOF is set to True if end of data was reached while filling the buffer, the buffer itself may still contain valid data.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Buffer: Pointer</td><td class=CDLDescription>the buffer to write to</td></tr><tr><td class=CDLEntry>BufferSize: Integer</td><td class=CDLDescription>the number of bytes to write</td></tr><tr><td class=CDLEntry>var EOF: Boolean</td><td class=CDLDescription>set to True if end of data was reached while filling the buffer.</td></tr></table><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Integer</td><td class=CDLDescription>Number of bytes written</td></tr></table></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Init"></a>Init</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Init</td></tr></table></blockquote><p>This method prepares input component for reading data.&nbsp; Usually this method is called internally by the output or converter component to which the input component is assigned.&nbsp; You can call this method if you want to get direct access to the audio stream.&nbsp; In such a case the sequence of calls should look like this.</p><blockquote><pre>InputComponent.Init;
InputComponent.GetData(...); // in a loop
InputComponent.Flush;</pre></blockquote></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Flush"></a>Flush</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Flush</td></tr></table></blockquote><p>This method closes the current input (opened with <a href="#TAuInput.Init" class=LFunction id=link49 onMouseOver="ShowTip(event, 'tt4', 'link49')" onMouseOut="HideTip('tt4')">Init</a>), clearing up all temporary structures allocated during data transfer.&nbsp; Usually this method is called internally by the output or converter component to which the input component is assigned.&nbsp; You can call this method if you want to get direct access to the audio stream.&nbsp; In such a case the sequence of calls should look like this.</p><blockquote><pre>InputComponent.Init;
InputComponent.GetData(...); // in a loop
InputComponent.Flush;</pre></blockquote></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.BitsPerSample"></a>BitsPerSample</h3><div class=CBody><p>The number of bits per sample in the input stream.&nbsp; Possible values are 8, 16, and 24.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Position"></a>Position</h3><div class=CBody><p>The current reading position in the input stream in bytes.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.SampleRate"></a>SampleRate</h3><div class=CBody><p>The input stream sample rate in Herz.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Channels"></a>Channels</h3><div class=CBody><p>The number of channels in the input stream.&nbsp; Possible values are 1 (mono), 2 (stereo)... and may be more.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Size"></a>Size</h3><div class=CBody><p>A read only property which returns input data size in bytes.&nbsp; The value of this property becomes valid after <a href="#TAuInput.Init" class=LFunction id=link50 onMouseOver="ShowTip(event, 'tt4', 'link50')" onMouseOut="HideTip('tt4')">Init</a> has been called.&nbsp; For some inputs (like <a href="ACS_DXAudio-pas.html#TDXAudioIn" class=LClass id=link51 onMouseOver="ShowTip(event, 'tt35', 'link51')" onMouseOut="HideTip('tt35')">TDXAudioIn</a>) the data size may be not known in advance.&nbsp; In this case Size returns -1</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.TotalSamples"></a>TotalSamples</h3><div class=CBody><p>A read only property which returns number of samples (frames) in the input stream.&nbsp; TotalSamples value may be valid only if the <a href="#TAuInput.Size" class=LProperty id=link52 onMouseOver="ShowTip(event, 'tt36', 'link52')" onMouseOut="HideTip('tt36')">Size</a> of the input is known.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.TotalTime"></a>TotalTime</h3><div class=CBody><p>A read only property which returns input playback time in seconds.&nbsp; TotalTime value may be valid only if the <a href="#TAuInput.Size" class=LProperty id=link53 onMouseOver="ShowTip(event, 'tt36', 'link53')" onMouseOut="HideTip('tt36')">Size</a> of the input is known.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuInput.Seekable"></a>Seekable</h3><div class=CBody><p>This read only property indicates when the input is seekable.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuOutput"></a>TAuOutput</h2><div class=CBody><p>The ancestor class for all output components.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuOutput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Pause" id=link54 onMouseOver="ShowTip(event, 'tt6', 'link54')" onMouseOut="HideTip('tt6')">Pause</a></td><td class=SDescription>Pauses the output.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuOutput.Resume" id=link55 onMouseOver="ShowTip(event, 'tt7', 'link55')" onMouseOut="HideTip('tt7')">Resume</a></td><td class=SDescription>Resumes previously paused output.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Run" id=link56 onMouseOver="ShowTip(event, 'tt8', 'link56')" onMouseOut="HideTip('tt8')">Run</a></td><td class=SDescription>After an input component has been assigned, call Run to start the audio processing chain. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuOutput.BlockingRun" id=link57 onMouseOver="ShowTip(event, 'tt9', 'link57')" onMouseOut="HideTip('tt9')">BlockingRun</a></td><td class=SDescription>In some situations, such as console programs or DUnit test units, background processing is not desirable. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Stop" id=link58 onMouseOver="ShowTip(event, 'tt10', 'link58')" onMouseOut="HideTip('tt10')">Stop</a></td><td class=SDescription>Stops the busy component or does nothing if the component is idle.</td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuOutput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Delay" >Delay</a></td><td class=SDescription>Sets the delay, affects CPU usage.</td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuOutput.ThreadPriority" >ThreadPriority</a></td><td class=SDescription>This property allows you to set the priority of the output thread.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Progress" >Progress</a></td><td class=SDescription>Read Progress to get the output progress in percents. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuOutput.Status" >Status</a></td><td class=SDescription>This read only property indicates the output component&rsquo;s current status. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.TimeElapsed" >TimeElapsed</a></td><td class=SDescription>The time in seconds that has passed since the playback was started. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuOutput.ExceptionMessage" >ExceptionMessage</a></td><td class=SDescription>Most exceptions that may occur during NewAC operation are suppressed. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.Input" >Input</a></td><td class=SDescription>This property allows you to set the input component for the output component. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuOutput.OnDone" >OnDone</a></td><td class=SDescription>Raised when the component has finished its job or was stopped asynchronously. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.OnProgress" >OnProgress</a></td><td class=SDescription>OnProgress event is raised periodically to indicate output progress. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuOutput.OnThreadException" >OnThreadException</a></td><td class=SDescription>This event is raised if an exception has occurred. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuOutput.OnSyncDone" >OnSyncDone</a></td><td class=SDescription>The synchronous analogue of the <a href="#TAuOutput.OnDone" class=LProperty id=link59 onMouseOver="ShowTip(event, 'tt11', 'link59')" onMouseOut="HideTip('tt11')">OnDone</a> event. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Pause"></a>Pause</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Pause</td></tr></table></blockquote><p>Pauses the output.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Resume"></a>Resume</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Resume</td></tr></table></blockquote><p>Resumes previously paused output.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Run"></a>Run</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Run</td></tr></table></blockquote><p>After an input component has been assigned, call Run to start the audio processing chain.&nbsp; When called, Run returns at once while the actual audio processing goes on in the different thread.&nbsp; You will get <a href="#TAuOutput.OnProgress" class=LProperty id=link60 onMouseOver="ShowTip(event, 'tt37', 'link60')" onMouseOut="HideTip('tt37')">OnProgress</a> events while audio processing continues and an <a href="#TAuOutput.OnDone" class=LProperty id=link61 onMouseOver="ShowTip(event, 'tt11', 'link61')" onMouseOut="HideTip('tt11')">OnDone</a> event when the job is done.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.BlockingRun"></a>BlockingRun</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure BlockingRun</td></tr></table></blockquote><p>In some situations, such as console programs or DUnit test units, background processing is not desirable.&nbsp; In these cases, call BlockingRun to run the output component and wait until all operations are complete before returning from the method.&nbsp; It is only fair to note that since there is no way to abort, pause, or stop the procedure once it has started, if used improperly this method can lock your program.&nbsp; If you are unsure which method to use, use the <a href="#TAuOutput.Run" class=LFunction id=link62 onMouseOver="ShowTip(event, 'tt8', 'link62')" onMouseOut="HideTip('tt8')">Run</a> method.&nbsp; Under normal circumstances, call <a href="#TAuOutput.Run" class=LFunction id=link63 onMouseOver="ShowTip(event, 'tt8', 'link63')" onMouseOut="HideTip('tt8')">Run</a> to allow audio processing to go on in the background while your application is free to respond to events.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Stop"></a>Stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure Stop(</td><td class=PParameter nowrap>Async :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>True</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Stops the busy component or does nothing if the component is idle.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Async: Boolean = True</td><td class=CDLDescription>If this parameter value is set to True (the default), Stop is called in an asynchronous mode.&nbsp; In this mode the method returns at once and OnDone event is raised when output is actually finished.&nbsp; If this parameter is set to False the Stop method is called in blocking mode.&nbsp; In this mode it returns only after the output is actually done.&nbsp; No event is raised in this case.</td></tr></table></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Delay"></a>Delay</h3><div class=CBody><p>Sets the delay, affects CPU usage.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.ThreadPriority"></a>ThreadPriority</h3><div class=CBody><p>This property allows you to set the priority of the output thread.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Progress"></a>Progress</h3><div class=CBody><p>Read Progress to get the output progress in percents.&nbsp; This value is meaningful only after the input component has been set and only if the input component can tell the size of its stream.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Status"></a>Status</h3><div class=CBody><p>This read only property indicates the output component&rsquo;s current status.&nbsp; Possible values are:</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>tosPlaying</td><td class=CDLDescription>the component is performing its task;</td></tr><tr><td class=CDLEntry>tosPaused</td><td class=CDLDescription>the component is paused (the <a href="#TAuOutput.Pause" class=LFunction id=link64 onMouseOver="ShowTip(event, 'tt6', 'link64')" onMouseOut="HideTip('tt6')">Pause</a> method was called)</td></tr><tr><td class=CDLEntry>tosIdle</td><td class=CDLDescription>the component is idle</td></tr></table></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.TimeElapsed"></a>TimeElapsed</h3><div class=CBody><p>The time in seconds that has passed since the playback was started.&nbsp; Useful for real time components like <a href="ACS_DXAudio-pas.html#TDXAudioOut" class=LClass id=link65 onMouseOver="ShowTip(event, 'tt38', 'link65')" onMouseOut="HideTip('tt38')">TDXAudioOut</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.ExceptionMessage"></a>ExceptionMessage</h3><div class=CBody><p>Most exceptions that may occur during NewAC operation are suppressed.&nbsp; If an exception occurs, the operation is stopped and the <a href="#TAuOutput.OnThreadException" class=LProperty id=link66 onMouseOver="ShowTip(event, 'tt39', 'link66')" onMouseOut="HideTip('tt39')">OnThreadException</a> event is raised.&nbsp; ExceptionMessage holds the exception text.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.Input"></a>Input</h3><div class=CBody><p>This property allows you to set the input component for the output component.&nbsp; The valid input components must be descendants of <a href="#TAuInput" class=LClass id=link67 onMouseOver="ShowTip(event, 'tt12', 'link67')" onMouseOut="HideTip('tt12')">TAuInput</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.OnDone"></a>OnDone</h3><div class=CBody><p>Raised when the component has finished its job or was stopped asynchronously.&nbsp; From this event handler you can perform any action on the output component, even remove the component itself!</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.OnProgress"></a>OnProgress</h3><div class=CBody><p>OnProgress event is raised periodically to indicate output progress.&nbsp; Use <a href="#TAuOutput.Progress" class=LProperty id=link68 onMouseOver="ShowTip(event, 'tt40', 'link68')" onMouseOut="HideTip('tt40')">Progress</a> property to get the progress value.&nbsp; OnProgress event is sent asynchronously and you can perform any action on the output component from the event handler.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.OnThreadException"></a>OnThreadException</h3><div class=CBody><p>This event is raised if an exception has occurred.&nbsp; Exception string is stored in <a href="#TAuOutput.ExceptionMessage" class=LProperty id=link69 onMouseOver="ShowTip(event, 'tt41', 'link69')" onMouseOut="HideTip('tt41')">ExceptionMessage</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuOutput.OnSyncDone"></a>OnSyncDone</h3><div class=CBody><p>The synchronous analogue of the <a href="#TAuOutput.OnDone" class=LProperty id=link70 onMouseOver="ShowTip(event, 'tt11', 'link70')" onMouseOut="HideTip('tt11')">OnDone</a> event.&nbsp; This event is called from an audio output thread and is not synchronized with the main (GUI) thread so be careful with the methods you call from the handler.&nbsp; DO NOT modify any of your GUI controls from this event&rsquo;s handler</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuStreamedInput"></a>TAuStreamedInput</h2><div class=CBody><p>A descendant of <a href="#TAuInput" class=LClass id=link73 onMouseOver="ShowTip(event, 'tt12', 'link73')" onMouseOut="HideTip('tt12')">TAuInput</a> to deal with streams.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuStreamedInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuStreamedInput.SeekInternal" id=link71 onMouseOver="ShowTip(event, 'tt13', 'link71')" onMouseOut="HideTip('tt13')">SeekInternal</a></td><td class=SDescription>This abstract method should be overridden with an implementation dependong on whether your input component is seekable or not. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuStreamedInput.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuStreamedInput.EndSample" >EndSample</a></td><td class=SDescription>Set this property&rsquo;s value to the sample (frame) you want the input to stop playing at. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuStreamedInput.Loop" >Loop</a></td><td class=SDescription>If set to True, the input loops (i.e. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuStreamedInput.StartSample" >StartSample</a></td><td class=SDescription>Set this property&rsquo;s value to the sample (frame) you want the input to start playing from. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuStreamedInput.Stream" >Stream</a></td><td class=SDescription>Use this property to set the input data stream for the input component. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuStreamedInput.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuStreamedInput.Seek" id=link72 onMouseOver="ShowTip(event, 'tt14', 'link72')" onMouseOut="HideTip('tt14')">Seek</a></td><td class=SDescription>This method allows you to change the current playing position in the the input component. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.SeekInternal"></a>SeekInternal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SeekInternal(</td><td class=PParameter nowrap>var SampleNum :</td><td class=PType nowrap>&nbsp;Int64</td><td class=PAfterParameters nowrap>) : Boolean; virtual; abstract</td></tr></table></td></tr></table></blockquote><p>This abstract method should be overridden with an implementation dependong on whether your input component is seekable or not.&nbsp; If your component is not seekable then you can write a method like the following.</p><blockquote><pre>function TMyComponent.SeekInternal(var SampleNum : Int64) : Boolean;
begin
  Result := False;
end;</pre></blockquote><p>If you want to make your component seekable you have to implement real seeking in this function.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.EndSample"></a>EndSample</h3><div class=CBody><p>Set this property&rsquo;s value to the sample (frame) you want the input to stop playing at.&nbsp; By default it is set to -1 which indicates &ldquo;play to the end of input.&rdquo;&nbsp; Changing this property value has an effect only when the component is idle.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Loop"></a>Loop</h3><div class=CBody><p>If set to True, the input loops (i.e. starts again from the beginning after it is finished).</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.StartSample"></a>StartSample</h3><div class=CBody><p>Set this property&rsquo;s value to the sample (frame) you want the input to start playing from.&nbsp; By default it is set to 0.&nbsp; Calling the <a href="#TAuStreamedInput.Seek" class=LFunction id=link74 onMouseOver="ShowTip(event, 'tt14', 'link74')" onMouseOut="HideTip('tt14')">Seek</a> method when the component is idle has the same effect.&nbsp; Note that when you set <a href="#TAuStreamedInput.StartSample" class=LProperty id=link75 onMouseOver="ShowTip(event, 'tt42', 'link75')" onMouseOut="HideTip('tt42')">StartSample</a> and <a href="#TAuStreamedInput.EndSample" class=LProperty id=link76 onMouseOver="ShowTip(event, 'tt43', 'link76')" onMouseOut="HideTip('tt43')">EndSample</a> properties you define a subrange of the input data.&nbsp; All further operations, such as playback and &lt;Seek&gt;ing will be performed within this subrange.&nbsp; The StartSample and <a href="#TAuStreamedInput.EndSample" class=LProperty id=link77 onMouseOver="ShowTip(event, 'tt43', 'link77')" onMouseOut="HideTip('tt43')">EndSample</a> values also affect the &lt;TotalSamples&gt; and &lt;Size&gt; values, returned by the component.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Stream"></a>Stream</h3><div class=CBody><p>Use this property to set the input data stream for the input component.&nbsp; Any TStream descendant may be used as a data source.&nbsp; Note that if you set Stream, you own it, that is you have to create, destroy and position the stream explicitly (the data playback will be started from the current position within the stream).&nbsp; In TAuFileIn descendants the value assigned to this property takes over the FileName property, i. e. if both Stream and FileName properties are assigned, the stream and not the file will be used for the actual input.&nbsp; To unassign this property set it to nil.&nbsp; If the stream is seekable it will be reset to the beginning at the end of the playback.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuStreamedInput.Seek"></a>Seek</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Seek(</td><td class=PParameter nowrap>SampleNum :</td><td class=PType nowrap>&nbsp;Int64</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote><p>This method allows you to change the current playing position in the the input component.&nbsp; If the input component is stopped or paused, calling Seek sets the sample from which the playback will begin.&nbsp; Note that not all inputs are seekable.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>SampleNum</td><td class=CDLDescription>The number of sample (frame) to play from.&nbsp; This number is set relative to the value of <a href="#TAuStreamedInput.StartSample" class=LProperty id=link78 onMouseOver="ShowTip(event, 'tt42', 'link78')" onMouseOut="HideTip('tt42')">StartSample</a>.</td></tr></table><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Boolean</td><td class=CDLDescription>A False value indicates that either a seek failed (you are seeking beyond the end of file or the <a href="#TAuStreamedInput.EndSample" class=LProperty id=link79 onMouseOver="ShowTip(event, 'tt43', 'link79')" onMouseOut="HideTip('tt43')">EndSample</a> value) or that the input stream is not seekable.</td></tr></table></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuStreamedOutput"></a>TAuStreamedOutput</h2><div class=CBody><p>A descendant of <a href="#TAuOutput" class=LClass id=link80 onMouseOver="ShowTip(event, 'tt15', 'link80')" onMouseOut="HideTip('tt15')">TAuOutput</a> to deal with streams.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuFileIn"></a>TAuFileIn</h2><div class=CBody><p>A descendant of <a href="#TAuStreamedInput" class=LClass id=link86 onMouseOver="ShowTip(event, 'tt16', 'link86')" onMouseOut="HideTip('tt16')">TAuStreamedInput</a> to deal with files and streams.&nbsp; All the components that read files descend from this class.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuFileIn.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuFileIn.OpenFile" id=link81 onMouseOver="ShowTip(event, 'tt17', 'link81')" onMouseOut="HideTip('tt17')">OpenFile</a></td><td class=SDescription>Opens the file or stream if it is not already open. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuFileIn.CloseFile" id=link82 onMouseOver="ShowTip(event, 'tt18', 'link82')" onMouseOut="HideTip('tt18')">CloseFile</a></td><td class=SDescription>Closes the file opened with <a href="#TAuFileIn.OpenFile" class=LFunction id=link83 onMouseOver="ShowTip(event, 'tt17', 'link83')" onMouseOut="HideTip('tt17')">OpenFile</a>. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuFileIn.SetStartTime" id=link84 onMouseOver="ShowTip(event, 'tt19', 'link84')" onMouseOut="HideTip('tt19')">SetStartTime</a></td><td class=SDescription>This function is a wrapper around StartSample property, provided for convenience. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuFileIn.SetEndTime" id=link85 onMouseOver="ShowTip(event, 'tt20', 'link85')" onMouseOut="HideTip('tt20')">SetEndTime</a></td><td class=SDescription>This function is a wrapper around EndSample property, provided for convenience. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuFileIn.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuFileIn.Valid" >Valid</a></td><td class=SDescription>Read this property to determine if the file is valid. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuFileIn.WideFileName" >WideFileName</a></td><td class=SDescription>Allows you to handle file names in Unicode. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuFileIn.Filename" >Filename</a></td><td class=SDescription>File name in 8-bit encoding. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.OpenFile"></a>OpenFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure OpenFile; virtual; abstract</td></tr></table></blockquote><p>Opens the file or stream if it is not already open.&nbsp; For performance reasons the file is opened when any of its data is accessed the first time and is then kept open until it is done with.&nbsp; The descendants&rsquo; FileOpen implementations use the FOpened constant to check if the file is already opened.</p><h4 class=CHeading>Note</h4><p>This method is called internally by <a href="#TAuInput.Init" class=LFunction id=link87 onMouseOver="ShowTip(event, 'tt4', 'link87')" onMouseOut="HideTip('tt4')">TAuInput.Init</a>, you should never call it directly.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.CloseFile"></a>CloseFile</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure CloseFile; virtual; abstract</td></tr></table></blockquote><p>Closes the file opened with <a href="#TAuFileIn.OpenFile" class=LFunction id=link88 onMouseOver="ShowTip(event, 'tt17', 'link88')" onMouseOut="HideTip('tt17')">OpenFile</a>.&nbsp; Sets the FOpened constant to 0.</p><h4 class=CHeading>Note</h4><p>This method is called internally by <a href="#TAuInput.Flush" class=LFunction id=link89 onMouseOver="ShowTip(event, 'tt5', 'link89')" onMouseOut="HideTip('tt5')">TAuInput.Flush</a>, you should never call it directly.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.SetStartTime"></a>SetStartTime</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SetStartTime(</td><td class=PParameter nowrap>Minutes,</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Seconds :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote><p>This function is a wrapper around StartSample property, provided for convenience.&nbsp; It allows you to set playback start position in minutes and seconds.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Minutes : LongWord</td><td class=CDLDescription>Minutes</td></tr><tr><td class=CDLEntry>Seconds : LongWord</td><td class=CDLDescription>Seconds</td></tr></table><h4 class=CHeading>Note</h4><blockquote><pre>SetStartTime(1, 30);</pre></blockquote><p>and</p><blockquote><pre>SetStartTime(0, 90);</pre></blockquote><p>are both allowed.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.SetEndTime"></a>SetEndTime</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SetEndTime(</td><td class=PParameter nowrap>Minutes,</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Seconds :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote><p>This function is a wrapper around EndSample property, provided for convenience.&nbsp; It allows you to set playback stop position in minutes and seconds.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Minutes : LongWord</td><td class=CDLDescription>Minutes</td></tr><tr><td class=CDLEntry>Seconds : LongWord</td><td class=CDLDescription>Seconds</td></tr></table></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.Valid"></a>Valid</h3><div class=CBody><p>Read this property to determine if the file is valid.&nbsp; It is a good practice to check this property before performing other operations on audio stream.&nbsp; Note however that True returned by Valid doesn&rsquo;t guarantee the file is fully playable.&nbsp; It indicates only that the file could be opened successfully and the file headers were correct.&nbsp; This property also returns False if the decoder library required to play the file cannot be loaded.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.WideFileName"></a>WideFileName</h3><div class=CBody><p>Allows you to handle file names in Unicode.&nbsp; Setting its value overrides the value set to FileName.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileIn.Filename"></a>Filename</h3><div class=CBody><p>File name in 8-bit encoding.&nbsp; Setting this property&rsquo;s value overrides the value set to <a href="#TAuFileIn.WideFileName" class=LProperty id=link90 onMouseOver="ShowTip(event, 'tt44', 'link90')" onMouseOut="HideTip('tt44')">WideFileName</a>.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuTaggedFileIn"></a>TAuTaggedFileIn</h2><div class=CBody><p>Descends from <a href="#TAuFileIn" class=LClass id=link91 onMouseOver="ShowTip(event, 'tt21', 'link91')" onMouseOut="HideTip('tt21')">TAuFileIn</a>, this class is an ancestor of the file input components that use tags.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuTaggedFileIn.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuTaggedFileIn.CommonTags" >CommonTags</a></td><td class=SDescription>Contains the tag values common to the different tag formats</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuTaggedFileIn.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuTaggedFileIn.CommonTags"></a>CommonTags</h3><div class=CBody><p>Contains the tag values common to the different tag formats</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuFileOut"></a>TAuFileOut</h2><div class=CBody><p>A descendant of <a href="#TAuStreamedOutput" class=LClass id=link92 onMouseOver="ShowTip(event, 'tt22', 'link92')" onMouseOut="HideTip('tt22')">TAuStreamedOutput</a> to deal with files and streams.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuFileOut.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuFileOut.FileMode" >FileMode</a></td><td class=SDescription>This property can take one of two values foRewrite (default) and foAppend. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuFileOut.WideFileName" >WideFileName</a></td><td class=SDescription>Allows you to handle file names in Unicode. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuFileOut.Filename" >Filename</a></td><td class=SDescription>File name in 8-bit encoding. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAuFileOut.ShareMode" >ShareMode</a></td><td class=SDescription>This property stores the share mode flags (like fmShareExclusive, fmShareDenyRead) that are applied to the files being created. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuFileOut.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileOut.FileMode"></a>FileMode</h3><div class=CBody><p>This property can take one of two values foRewrite (default) and foAppend.&nbsp; In the foRewrite mode the new file overwrites the previous one (if it existed).&nbsp; In the foAppend mode the new content is added to the existing.&nbsp; Currently only <a href="ACS_Wave-pas.html#TWaveOut" class=LClass id=link93 onMouseOver="ShowTip(event, 'tt45', 'link93')" onMouseOut="HideTip('tt45')">TWaveOut</a> and <a href="ACS_Vorbis-pas.html#TVorbisOut" class=LClass id=link94 onMouseOver="ShowTip(event, 'tt46', 'link94')" onMouseOut="HideTip('tt46')">TVorbisOut</a> components support this mode.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileOut.WideFileName"></a>WideFileName</h3><div class=CBody><p>Allows you to handle file names in Unicode.&nbsp; Setting its value overrides the value set to FileName.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileOut.Filename"></a>Filename</h3><div class=CBody><p>File name in 8-bit encoding.&nbsp; Setting this property&rsquo;s value overrides the value set to <a href="#TAuFileOut.WideFileName" class=LProperty id=link95 onMouseOver="ShowTip(event, 'tt47', 'link95')" onMouseOut="HideTip('tt47')">WideFileName</a>.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFileOut.ShareMode"></a>ShareMode</h3><div class=CBody><p>This property stores the share mode flags (like fmShareExclusive, fmShareDenyRead) that are applied to the files being created.&nbsp; Since Delphi 2010 has some problems with these flags, the default value is zero.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuTaggedFileOut"></a>TAuTaggedFileOut</h2><div class=CBody><p>Descends from <a href="#TAuFileOut" class=LClass id=link96 onMouseOver="ShowTip(event, 'tt23', 'link96')" onMouseOut="HideTip('tt23')">TAuFileOut</a>, this class is an ancestor of the file output components that use Id3v* tags.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuConverter"></a>TAuConverter</h2><div class=CBody><p>Descends from <a href="#TAuInput" class=LClass id=link97 onMouseOver="ShowTip(event, 'tt12', 'link97')" onMouseOut="HideTip('tt12')">TAuInput</a>, the base class for all converter components.&nbsp; Converters are laced between input and output in the audio-processing chain.&nbsp; See NewAC Introduction for more information on the converters.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuConverter.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuConverter.Input" >Input</a></td><td class=SDescription>Like the output components, converters can be assigned an input. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuConverter.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuConverter.Input"></a>Input</h3><div class=CBody><p>Like the output components, converters can be assigned an input.&nbsp; Unlike the output components converters themselves can be input sources (for output components and other converters).</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAudioTap"></a>TAudioTap</h2><div class=CBody><p>This is the base class for all &ldquo;audio tap components&rdquo;.&nbsp; Technically audio taps are converters as they sit between input and output components in the audio-processing chain.&nbsp; But audio taps do not modify audio data passing trough them.&nbsp; Instead they write everithing passing through into some audio file.</p><p>The main goal of audio tap components is to make the audio-processing chain to perform several tasks at once: record while you listen, save data at several formats simultaneously, etc.</p><p>Descends from <a href="#TAuConverter" class=LClass id=link102 onMouseOver="ShowTip(event, 'tt48', 'link102')" onMouseOut="HideTip('tt48')">TAuConverter</a>.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAudioTap.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAudioTap.StartRecord" id=link98 onMouseOver="ShowTip(event, 'tt24', 'link98')" onMouseOut="HideTip('tt24')">StartRecord</a></td><td class=SDescription>Call this method to start recording audio data passing through an audio tap.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAudioTap.StopRecord" id=link99 onMouseOver="ShowTip(event, 'tt25', 'link99')" onMouseOut="HideTip('tt25')">StopRecord</a></td><td class=SDescription>Call this method to stop recording.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAudioTap.PauseRecord" id=link100 onMouseOver="ShowTip(event, 'tt26', 'link100')" onMouseOut="HideTip('tt26')">PauseRecord</a></td><td class=SDescription>Call this method to pause recording.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAudioTap.ResumeRecord" id=link101 onMouseOver="ShowTip(event, 'tt27', 'link101')" onMouseOut="HideTip('tt27')">ResumeRecord</a></td><td class=SDescription>Call this method to resume paused recording.</td></tr><tr class="SGroup"><td class=SEntry><a href="#TAudioTap.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAudioTap.Status" >Status</a></td><td class=SDescription>Read this property to get the component status. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAudioTap.WideFileName" >WideFileName</a></td><td class=SDescription>Use this property to set or get the file name the data is written to in Unicode charset. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAudioTap.FileName" >FileName</a></td><td class=SDescription>Use this property to set or get the file name the data is written to in 8-bit charset. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.StartRecord"></a>StartRecord</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure StartRecord</td></tr></table></blockquote><p>Call this method to start recording audio data passing through an audio tap.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.StopRecord"></a>StopRecord</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure StopRecord</td></tr></table></blockquote><p>Call this method to stop recording.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.PauseRecord"></a>PauseRecord</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure PauseRecord</td></tr></table></blockquote><p>Call this method to pause recording.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.ResumeRecord"></a>ResumeRecord</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure ResumeRecord</td></tr></table></blockquote><p>Call this method to resume paused recording.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.Status"></a>Status</h3><div class=CBody><p>Read this property to get the component status.&nbsp; The possible values are tosIdle (the component passes data through without recording), tosPlaying (the component records data) and tpsPaused.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.WideFileName"></a>WideFileName</h3><div class=CBody><p>Use this property to set or get the file name the data is written to in Unicode charset.&nbsp; The value assigned to this prperty overrides <a href="#TAudioTap.FileName" class=LProperty id=link103 onMouseOver="ShowTip(event, 'tt49', 'link103')" onMouseOut="HideTip('tt49')">FileName</a></p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioTap.FileName"></a>FileName</h3><div class=CBody><p>Use this property to set or get the file name the data is written to in 8-bit charset.&nbsp; The value assigned to this prperty overrides <a href="#TAudioTap.WideFileName" class=LProperty id=link104 onMouseOver="ShowTip(event, 'tt50', 'link104')" onMouseOut="HideTip('tt50')">WideFileName</a></p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAuFIFOStream"></a>TAuFIFOStream</h2><div class=CBody><p>This class implements the FIFO queue with a TStream-compatible interface.&nbsp; The first thing you write to the stream is the first thing you will read from it.&nbsp; The TAuFIFOStream operates on assumption that one agent is constantly writing the data to it while other is constantly reading.&nbsp; The stream is not seekable and the Size property has no meaning for it.&nbsp; Descends from TStream.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAuFIFOStream.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuFIFOStream.Create" id=link105 onMouseOver="ShowTip(event, 'tt28', 'link105')" onMouseOut="HideTip('tt28')">Create</a></td><td class=SDescription>The TAuFIFOStream constructor. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuFIFOStream.Read" id=link106 onMouseOver="ShowTip(event, 'tt29', 'link106')" onMouseOut="HideTip('tt29')">Read</a></td><td class=SDescription>This function reimplements that of TStream. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuFIFOStream.Write" id=link107 onMouseOver="ShowTip(event, 'tt30', 'link107')" onMouseOut="HideTip('tt30')">Write</a></td><td class=SDescription>This function reimplements that of TStream. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuFIFOStream.Seek" id=link108 onMouseOver="ShowTip(event, 'tt31', 'link108')" onMouseOut="HideTip('tt31')">Seek</a></td><td class=SDescription>This function reimplements that of TStream. </td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuFIFOStream.WouldReadBlock" id=link109 onMouseOver="ShowTip(event, 'tt32', 'link109')" onMouseOut="HideTip('tt32')">WouldReadBlock</a></td><td class=SDescription>This function returns True if the <a href="#TAuFIFOStream.Read" class=LFunction id=link110 onMouseOver="ShowTip(event, 'tt29', 'link110')" onMouseOut="HideTip('tt29')">Read</a> would block (that is there is no data in the buffer) and False otherwise.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#TAuFIFOStream.WouldWriteBlock" id=link111 onMouseOver="ShowTip(event, 'tt33', 'link111')" onMouseOut="HideTip('tt33')">WouldWriteBlock</a></td><td class=SDescription>This function returns True if the <a href="#TAuFIFOStream.Write" class=LFunction id=link112 onMouseOver="ShowTip(event, 'tt30', 'link112')" onMouseOut="HideTip('tt30')">Write</a> would block (that is there is not enough free space in the buffer to write Bytes bytes) and False otherwise.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#TAuFIFOStream.Reset" id=link113 onMouseOver="ShowTip(event, 'tt34', 'link113')" onMouseOut="HideTip('tt34')">Reset</a></td><td class=SDescription>Call this to reset the stream. </td></tr><tr class="SGroup"><td class=SEntry><a href="#TAuFIFOStream.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAuFIFOStream.EOF" >EOF</a></td><td class=SDescription>The writer sets this property to True when it has written all the data. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuFIFOStream.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFIFOStream.Create"></a>Create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>constructor Create(</td><td class=PParameter nowrap>BufSize :</td><td class=PType nowrap>&nbsp;LongWord;</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>PadWithZeros :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>False</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>The TAuFIFOStream constructor.&nbsp; BufSize is the internal buffer size in bytes.&nbsp; Set PadWithZeros if you want <a href="#TAuFIFOStream.Read" class=LFunction id=link114 onMouseOver="ShowTip(event, 'tt29', 'link114')" onMouseOut="HideTip('tt29')">Read</a> to never block and return zero-filled buffer when there is no data.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFIFOStream.Read"></a>Read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Read(</td><td class=PParameter nowrap>var Buffer;</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Count:</td><td class=PType nowrap>&nbsp;Longint</td><td class=PAfterParameters nowrap>): Longint; override</td></tr></table></td></tr></table></blockquote><p>This function reimplements that of TStream.&nbsp; If you created the stream with PadWithZeros equal to False, Read will block until there is some data in the buffer.&nbsp; See also <a href="#TAuFIFOStream.WouldReadBlock" class=LFunction id=link115 onMouseOver="ShowTip(event, 'tt32', 'link115')" onMouseOut="HideTip('tt32')">WouldReadBlock</a>, <a href="#TAuFIFOStream.EOF" class=LProperty id=link116 onMouseOver="ShowTip(event, 'tt51', 'link116')" onMouseOut="HideTip('tt51')">EOF</a>.&nbsp; If Read returns 0 it means that there is no data in the buffer and the writer will not write any new data.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFIFOStream.Write"></a>Write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Write(</td><td class=PParameter nowrap>const Buffer;</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Count:</td><td class=PType nowrap>&nbsp;Longint</td><td class=PAfterParameters nowrap>): Longint; override</td></tr></table></td></tr></table></blockquote><p>This function reimplements that of TStream.&nbsp; Write returns only after all the data has been written or <a href="#TAuFIFOStream.Reset" class=LFunction id=link117 onMouseOver="ShowTip(event, 'tt34', 'link117')" onMouseOut="HideTip('tt34')">Reset</a> is called (or <a href="#TAuFIFOStream.EOF" class=LProperty id=link118 onMouseOver="ShowTip(event, 'tt51', 'link118')" onMouseOut="HideTip('tt51')">EOF</a> is set to True).&nbsp; The size of the data to be written may be more than the size of the internal buffer.&nbsp; Write will block if there is not enough free space in the buffer (until enough data is read by the reader).&nbsp; See also <a href="#TAuFIFOStream.WouldWriteBlock" class=LFunction id=link119 onMouseOver="ShowTip(event, 'tt33', 'link119')" onMouseOut="HideTip('tt33')">WouldWriteBlock</a>.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFIFOStream.Seek"></a>Seek</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Seek(</td><td class=PParameter nowrap>Offset:</td><td class=PType nowrap>&nbsp;Longint;</td></tr><tr><td></td><td class=PParameter nowrap>Origin:</td><td class=PType nowrap>&nbsp;Word</td><td class=PAfterParameters nowrap>): Longint; overload; override</td></tr></table></td></tr></table></blockquote><p>This function reimplements that of TStream.&nbsp; Since TAuFIFOStream is non-seekable, it does nothing.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFIFOStream.WouldReadBlock"></a>WouldReadBlock</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function WouldReadBlock : Boolean</td></tr></table></blockquote><p>This function returns True if the <a href="#TAuFIFOStream.Read" class=LFunction id=link120 onMouseOver="ShowTip(event, 'tt29', 'link120')" onMouseOut="HideTip('tt29')">Read</a> would block (that is there is no data in the buffer) and False otherwise.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFIFOStream.WouldWriteBlock"></a>WouldWriteBlock</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function WouldWriteBlock(</td><td class=PParameter nowrap>Bytes :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>1</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote><p>This function returns True if the <a href="#TAuFIFOStream.Write" class=LFunction id=link121 onMouseOver="ShowTip(event, 'tt30', 'link121')" onMouseOut="HideTip('tt30')">Write</a> would block (that is there is not enough free space in the buffer to write Bytes bytes) and False otherwise.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="TAuFIFOStream.Reset"></a>Reset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Reset</td></tr></table></blockquote><p>Call this to reset the stream.&nbsp; Any blocked call to <a href="#TAuFIFOStream.Read" class=LFunction id=link122 onMouseOver="ShowTip(event, 'tt29', 'link122')" onMouseOut="HideTip('tt29')">Read</a> or <a href="#TAuFIFOStream.Write" class=LFunction id=link123 onMouseOver="ShowTip(event, 'tt30', 'link123')" onMouseOut="HideTip('tt30')">Write</a> returns immediately.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAuFIFOStream.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAuFIFOStream.EOF"></a>EOF</h3><div class=CBody><p>The writer sets this property to True when it has written all the data.&nbsp; After this the reader reads all the data that is left in the buffer and then <a href="#TAuFIFOStream.Read" class=LFunction id=link124 onMouseOver="ShowTip(event, 'tt29', 'link124')" onMouseOut="HideTip('tt29')">Read</a> calls start returning 0 as the resulting value (which is the End of File indicator for the reader).</p></div></div></div>

</div><!--Content-->


<div id=Footer>Content &copy; 2008-2010 Andrei Borovsky. Design &copy; 2008 Wayne Thursby. <b><u><a href="http://symmetrica.net/newac">Go to the project's main page</a></u></b>&nbsp; &middot;&nbsp; <a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MTitle>NewAC<div class=MSubTitle>v2.6.1</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Documentation</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../doc/txt/introduction-txt.html">Quick Introduction to NewAC</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/about_documentation-txt.html">About the Documentation</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/cwguide-txt.html">Component Writer&rsquo;s Guide</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/license-txt.html">License</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/tips_and_tricks-txt.html">Tips &amp; Tricks</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/newac-txt.html">About New Audio Components</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/features-txt.html">NewAC Main Features List</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Main Units</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="ACS_AudioMix-pas.html">ACS_AudioMix</a></div></div><div class=MEntry><div class=MFile><a href="ACS_CDROM-pas.html">ACS_CDROM</a></div></div><div class=MEntry><div class=MFile id=MSelected>ACS_Classes</div></div><div class=MEntry><div class=MFile><a href="ACS_Converters-pas.html">ACS_Converters</a></div></div><div class=MEntry><div class=MFile><a href="ACS_DXAudio-pas.html">ACS_DXAudio</a></div></div><div class=MEntry><div class=MFile><a href="ACS_FLAC-pas.html">ACS_FLAC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Filters-pas.html">ACS_Filters</a></div></div><div class=MEntry><div class=MFile><a href="ACS_LAME-pas.html">ACS_LAME</a></div></div><div class=MEntry><div class=MFile><a href="ACS_MAC-pas.html">ACS_MAC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Misc-pas.html">ACS_Misc</a></div></div><div class=MEntry><div class=MFile><a href="ACS_MPC-pas.html">ACS_MPC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_OptimFROG-pas.html">ACS_OptimFROG</a></div></div><div class=MEntry><div class=MFile><a href="ACS_smpeg-pas.html">ACS_SMPEG</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Streams-pas.html">ACS_Streams</a></div></div><div class=MEntry><div class=MFile><a href="ACS_TTA-pas.html">ACS_TTA</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Tags-pas.html">ACS_Tags</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Vorbis-pas.html">ACS_Vorbis</a></div></div><div class=MEntry><div class=MFile><a href="ACS_WavPack-pas.html">ACS_WavPack</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Wave-pas.html">ACS_Wave</a></div></div><div class=MEntry><div class=MFile><a href="ACS_WinMedia-pas.html">ACS_WinMedia</a></div></div><div class=MEntry><div class=MFile><a href="ACS_AAC-pas.html">ACS_AAC</a></div></div><div class=MEntry><div class=MFile><a href="AudioDMO-pas.html">AudioDMO</a></div></div><div class=MEntry><div class=MFile><a href="AudioPass-pas.html">AudioPass</a></div></div><div class=MEntry><div class=MFile><a href="AuSampleRate-pas.html">AuSampleRate</a></div></div><div class=MEntry><div class=MFile><a href="AuASIO-pas.html">AuASIO</a></div></div><div class=MEntry><div class=MFile><a href="AuSynch-pas.html">AuSynch</a></div></div><div class=MEntry><div class=MFile><a href="NewACDTS-pas.html">NewACDTS</a></div></div><div class=MEntry><div class=MFile><a href="NewAC_AVI-pas.html">NewAC_AVI</a></div></div><div class=MEntry><div class=MFile><a href="NewAC_DSP-pas.html">NewAC_DSP</a></div></div><div class=MEntry><div class=MFile><a href="NewACAC3-pas.html">NewACAC3</a></div></div><div class=MEntry><div class=MFile><a href="NewACIndicators-pas.html">NewACIndicators</a></div></div><div class=MEntry><div class=MFile><a href="NewACDSAudio-pas.html">NewACDSAudio</a></div></div><div class=MEntry><div class=MFile><a href="ACS_AAC-pas.html">ACS_AAC</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Utility Units</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="ACS_Misc-pas.html">ACS_Misc</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Procs-pas.html">ACS_Procs</a></div></div><div class=MEntry><div class=MFile><a href="acs_reg-pas.html">ACS_Reg</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Types-pas.html">ACS_Types</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Tutorials</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../demos/Tutorial/AudioProcessor/Main-pas.html">Audio Processor</a></div></div><div class=MEntry><div class=MFile><a href="../demos/Tutorial/ComponentsDemo/ComponentsDemo-pas.html">Components Demo</a></div></div><div class=MEntry><div class=MFile><a href="../demos/Recorders-rippers/Rip'n'listen/Main-pas.html">Rip&rsquo;n&rsquo;Listen Demo</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/Test_ACS_MAC-pas.html">ACS_MAC TestCases</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/Test_ACS_WavPack-pas.html">ACS_WavPack TestCases</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/Test_ACS_FLAC-pas.html">TestFLACEncode</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/uLog-pas.html">uLog.pas</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/uTestBase-pas.html">uTestBase</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/uUtility-pas.html">uUtility</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Properties.html">Properties</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Types.html">Types</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Properties">Properties</option><option value="Types">Types</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
HideAllBut([2], 6);// --></script></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure GetData(</td><td class=PParameter nowrap>var Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>var Bytes :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>); virtual</td></tr></table></td></tr></table></blockquote>This method retrieves input data. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function CopyData(</td><td class=PParameter nowrap>Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>BufferSize :</td><td class=PType nowrap>&nbsp;Integer</td><td class=PAfterParameters nowrap>) : LongWord</td></tr></table></td></tr></table></blockquote>Writes no more than BufferSize data into Buffer</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function FillBuffer(</td><td class=PParameter nowrap>Buffer :</td><td class=PType nowrap>&nbsp;Pointer;</td></tr><tr><td></td><td class=PParameter nowrap>BufferSize :</td><td class=PType nowrap>&nbsp;LongWord;</td></tr><tr><td></td><td class=PParameter nowrap>var EOF :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PAfterParameters nowrap>) : LongWord</td></tr></table></td></tr></table></blockquote>The same as CopyData but tries to fill the Buffer. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Init</td></tr></table></blockquote>This method prepares input component for reading data. </div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Flush</td></tr></table></blockquote>This method closes the current input (opened with Init), clearing up all temporary structures allocated during data transfer. </div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Pause</td></tr></table></blockquote>Pauses the output.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Resume</td></tr></table></blockquote>Resumes previously paused output.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Run</td></tr></table></blockquote>After an input component has been assigned, call Run to start the audio processing chain. </div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure BlockingRun</td></tr></table></blockquote>In some situations, such as console programs or DUnit test units, background processing is not desirable. </div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>procedure Stop(</td><td class=PParameter nowrap>Async :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>True</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Stops the busy component or does nothing if the component is idle.</div></div><div class=CToolTip id="tt11"><div class=CProperty>Raised when the component has finished its job or was stopped asynchronously. </div></div><div class=CToolTip id="tt12"><div class=CClass>The ancestor class for all input components.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SeekInternal(</td><td class=PParameter nowrap>var SampleNum :</td><td class=PType nowrap>&nbsp;Int64</td><td class=PAfterParameters nowrap>) : Boolean; virtual; abstract</td></tr></table></td></tr></table></blockquote>This abstract method should be overridden with an implementation dependong on whether your input component is seekable or not. </div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Seek(</td><td class=PParameter nowrap>SampleNum :</td><td class=PType nowrap>&nbsp;Int64</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote>This method allows you to change the current playing position in the the input component. </div></div><div class=CToolTip id="tt15"><div class=CClass>The ancestor class for all output components.</div></div><div class=CToolTip id="tt16"><div class=CClass>A descendant of TAuInput to deal with streams.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure OpenFile; virtual; abstract</td></tr></table></blockquote>Opens the file or stream if it is not already open. </div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure CloseFile; virtual; abstract</td></tr></table></blockquote>Closes the file opened with OpenFile. </div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SetStartTime(</td><td class=PParameter nowrap>Minutes,</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Seconds :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote>This function is a wrapper around StartSample property, provided for convenience. </div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function SetEndTime(</td><td class=PParameter nowrap>Minutes,</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Seconds :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote>This function is a wrapper around EndSample property, provided for convenience. </div></div><div class=CToolTip id="tt21"><div class=CClass>A descendant of TAuStreamedInput to deal with files and streams. </div></div><div class=CToolTip id="tt22"><div class=CClass>A descendant of TAuOutput to deal with streams.</div></div><div class=CToolTip id="tt23"><div class=CClass>A descendant of TAuStreamedOutput to deal with files and streams.</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure StartRecord</td></tr></table></blockquote>Call this method to start recording audio data passing through an audio tap.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure StopRecord</td></tr></table></blockquote>Call this method to stop recording.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure PauseRecord</td></tr></table></blockquote>Call this method to pause recording.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure ResumeRecord</td></tr></table></blockquote>Call this method to resume paused recording.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>constructor Create(</td><td class=PParameter nowrap>BufSize :</td><td class=PType nowrap>&nbsp;LongWord;</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PParameter nowrap>PadWithZeros :</td><td class=PType nowrap>&nbsp;Boolean</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>False</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>The TAuFIFOStream constructor. </div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Read(</td><td class=PParameter nowrap>var Buffer;</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Count:</td><td class=PType nowrap>&nbsp;Longint</td><td class=PAfterParameters nowrap>): Longint; override</td></tr></table></td></tr></table></blockquote>This function reimplements that of TStream. </div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Write(</td><td class=PParameter nowrap>const Buffer;</td><td class=PType nowrap>&nbsp;</td></tr><tr><td></td><td class=PParameter nowrap>Count:</td><td class=PType nowrap>&nbsp;Longint</td><td class=PAfterParameters nowrap>): Longint; override</td></tr></table></td></tr></table></blockquote>This function reimplements that of TStream. </div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function Seek(</td><td class=PParameter nowrap>Offset:</td><td class=PType nowrap>&nbsp;Longint;</td></tr><tr><td></td><td class=PParameter nowrap>Origin:</td><td class=PType nowrap>&nbsp;Word</td><td class=PAfterParameters nowrap>): Longint; overload; override</td></tr></table></td></tr></table></blockquote>This function reimplements that of TStream. </div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function WouldReadBlock : Boolean</td></tr></table></blockquote>This function returns True if the Read would block (that is there is no data in the buffer) and False otherwise.</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function WouldWriteBlock(</td><td class=PParameter nowrap>Bytes :</td><td class=PType nowrap>&nbsp;LongWord</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>1</td><td class=PAfterParameters nowrap>) : Boolean</td></tr></table></td></tr></table></blockquote>This function returns True if the Write would block (that is there is not enough free space in the buffer to write Bytes bytes) and False otherwise.</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>procedure Reset</td></tr></table></blockquote>Call this to reset the stream. </div></div><div class=CToolTip id="tt35"><div class=CClass>Performs audio recording from a sound card using the DirectX API. </div></div><div class=CToolTip id="tt36"><div class=CProperty>A read only property which returns input data size in bytes. </div></div><div class=CToolTip id="tt37"><div class=CProperty>OnProgress event is raised periodically to indicate output progress. </div></div><div class=CToolTip id="tt38"><div class=CClass>Performs audio playback using the DirectX API. </div></div><div class=CToolTip id="tt39"><div class=CProperty>This event is raised if an exception has occurred. </div></div><div class=CToolTip id="tt40"><div class=CProperty>Read Progress to get the output progress in percents. </div></div><div class=CToolTip id="tt41"><div class=CProperty>Most exceptions that may occur during NewAC operation are suppressed. </div></div><div class=CToolTip id="tt42"><div class=CProperty>Set this property&rsquo;s value to the sample (frame) you want the input to start playing from. </div></div><div class=CToolTip id="tt43"><div class=CProperty>Set this property&rsquo;s value to the sample (frame) you want the input to stop playing at. </div></div><div class=CToolTip id="tt44"><div class=CProperty>Allows you to handle file names in Unicode. </div></div><div class=CToolTip id="tt45"><div class=CClass>Wave file encoder. </div></div><div class=CToolTip id="tt46"><div class=CClass>The Ogg Vorbis encoder component. </div></div><div class=CToolTip id="tt47"><div class=CProperty>Allows you to handle file names in Unicode. </div></div><div class=CToolTip id="tt48"><div class=CClass>Descends from TAuInput, the base class for all converter components. </div></div><div class=CToolTip id="tt49"><div class=CProperty>Use this property to set or get the file name the data is written to in 8-bit charset. </div></div><div class=CToolTip id="tt50"><div class=CProperty>Use this property to set or get the file name the data is written to in Unicode charset. </div></div><div class=CToolTip id="tt51"><div class=CProperty>The writer sets this property to True when it has written all the data. </div></div><!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>